PHP NoticeBoard Model klasse
Probleem
Acties worden niet altijd synchroon uitgevoerd. Daarenboven moet het kunnen om de feedback van een bepaalde actie op een bepaald moment, op een later tijdstip aan de gebruiker te geven.
Een proces bestaat soms uit meerdere acties die uitgevoerd worden. Het is niet altijd mogelijk om direct de feedback van één actie uit een proces te tonen. Soms moet je wachten totdat het hele proces is afgelopen om alle feedback van de individuele acties weer te geven. Je moet dus de feedback van individuele acties kunnen onthouden. Het memoriseren van alle feedback tijdens een proces doen we met de Log klasse.
Daarvoor maken we een NoticeBoard
. De NoticeBoard
beschikt over een dictionary waarin we meerdere message objecten kunnen in opslaan. De key is de name eigenschap van de Message
klasse. Die naam moet uniek zijn anders wordt de het message object met dezelfde naam overschreven door het nieuwe pas toegevoegde object.
Design
De NoticeBoard
klasse zit in dezelfde namespace als de Notice
klasse, namelijk namespace ModernWays\Dialog;
Die klasse beschikt slechts over één veld met de naam board
. Een lijst van notities. De sleutel is de Name eigenschap van het Notice
object en de waarde is het Notice
object is zijn geheel.
Opmerking
Als de naam van het Notice
object al bestaat wordt het bericht overschreven!!!!!!!!!
Velden
naam | gegevenstype | beschrijving |
$board | associatieve array | dictionary van Notice objecten |
Methoden
Connection naam | retour-gegevenstype | parameter | beschrijving |
__construct | void | ||
end | stelt en de eindtijd in en prikt het bericht op het bord | ||
getEntry | Notice | $name | de naam van het Notice object dat geretourneerd zal worden |
getBook | dictionary | de lijst met Notice objecten | |
push | $feedbackObject | een Notice object aan het einde van het logboek toevoegen | |
delete | Notice | $name | het Notice object met de meegegeven naam deleten en de gedeletete entry retourneren |
clear | void | de Board dictionary leegmaken | |
append | void | $value | de dictionary in $value toevoegen aan de Board dictionary |